O desenvolvimento das IAs segue uma metodologia muito bem definida que possibilita seu funcionamento com a maior taxa de acertos possíveis e ainda sua adapatação a qualquer atividade que possa ser beneficiada pelo uso da IA.
Note que nenhuma IA pode garantir que a resposta fornecida seja é perfeita, correta, mas sim e é a mais acertada seguindo os
'parâmetros' pelos quais a IA foi 'ajustada' para responder.
Pode ser que devido a falta de alguns ajustes ou de algumas mudanças nas condições das pesquisas que os resultados não
sejam exatamente os esperados.
Neste caso a IA precisa de alguns ajustes que normalmente são feitos nas parametrizações dos sistemas de IA.
Note que podemos colocar na IA mecanismos capazes de reconhecer os próprios erros da IA.
Por exemplo, eu sei que tal pesquisa deveria voltar obrigatóriamente um resultado obrigatoriamente e, de repente, está voltando
2 resultados.
Eu posso pedir para a IA gerar uma notificação de correção do erro ou criar um mecanismo de auto-ajuste da IA.
Para simplificar nosso pensamento vamos adotar que o mecanismo de IA é um mecanismo de pergunta e resposta, como na web, um request e um response. Sabemos que é um 'arredondamento' grosseiro, mas para explicação da teoria básica desta página é o suficiente.
A IA muitas vezes parece muito com os humanos. Como tudo a IA tem gerações e em cada geração os recursos aumentam exponencialmente.
Tenha em mente que olhando de uma geração para outra mais nova a anterior parece mais um 'esboço' de IA que uma IA de tão grande é o avanço em cada uma das gerações. Literalmente não tem qualquer comparação.
A primeira geração tinha uma interação pequena e um leque de respostas limitadas. Por exemplo, um atendimento automático feito pelo WhatsUp era assim ( acho eu que antigamente, hoje já deve ter mudado).
Num primeiro momento ela enviava para você as opções...digite 1 para isso, 2 para aquilo, etc e você era obrigado a responder a um leque limitado de opções. Era adequada para responder como um bot de atendimento num call center, por exemplo.
Num segundo momento, devido ao grande leque de opções, a análise da solicitação foi melhorada. Afinal ninguém ficaria num chat quando ele respondesse 'digite 40 para isso, 41 para aquilo'. Então melhoraram a capacidade de reconhecimento e, sendo assim, você enviava uma pergunta...a IA 'encaixava' a pergunta numa resposta e respondia ou pedia para você reformular a pergunta porque ele não entendeu e, em alguns casos, te enviava um leque de perguntas que mais se 'adequavam' a pergunta que ele não entendeu.
A segunda geração representou um avanço notável, ela era capaz de interagir com um ser humano ou na linguagem escrita ou falada naturalmente ( chamamos de Processamento de Linguagem Natural ou NLP ).
Na primeira geração você digitava 1 para alterar a senha e na segunda você perguntava 'como faço para alterar minha senha'. Note que da primeira geração para a segunda o leque de perguntas e respostas possíveis foi para o espaço, exponencial é pouco.
Com este novo recurso podemos fazer uma pessoa enviar uma questão no idioma dela e a IA traduzir para outro em real-time. Imagine um alemão falando com um chinês em seus respectivos idiomas e os 2 se entenderem perfeitamente. Coisa de loco mas carne de vaca se comparado a terceira geração.
A terceira geração inovou geometricamente o leque de aplicações da IA quando incorporou as 'tecnologias conversacionais' a IA. Com isto a IA não só 'entende' o que o usuário está pedindo mas sim 'interpreta' o que o usuário está pedindo num contexto muito mais complexo.
Nesta terceira geração não temos uma 'IA digital' mas sim uma 'IA inteligente' que pode ir refinando as respostas com novas parametrizações feitas pelo usuário até que a resposta correta seja alcançada ou permite uma análise profunda da questão enviada de maneira que a resposta atenda tudo que foi pedido na solicitação.
Neste caso de terceira geração poderíamos fazer a pergunta a IA do tipo : Por favor explique a teoria da relatividade de maneira que uma criança no primeiro grau possa entender. Vá no ChatGPT e faça a pergunta, leia a resposta..
Claro! Vou explicar usando uma história simples:
Imagine que você está em um ônibus em movimento.
Dentro do ônibus, você joga uma bola para cima.
Para você, a bola sobe e desce em linha reta, certo?
Mas, para alguém que está fora do ônibus e vendo pela janela, a bola faz um arco, porque o ônibus está se movendo enquanto a bola
está no ar.
Agora, pense que isso é um pouco como o que Einstein falou na **Teoria da Relatividade**. Ele disse que o jeito como as coisas
acontecem pode parecer diferente dependendo de onde você está e de como você está se movendo.
Einstein também disse algo muito legal: o **tempo não é igual para todo mundo**! Por exemplo, se você pudesse viajar em um
foguete super rápido, quase na velocidade da luz (que é a coisa mais rápida que existe), o tempo para você passaria mais
devagar do que para alguém que está parado na Terra.
Então, a Teoria da Relatividade é como um conjunto de regras mágicas que mostram como o espaço, o tempo e o movimento estão
todos conectados. É como se o universo tivesse sua própria dança, e tudo depende de como você está participando dela!
Não se esqueça que a IA ainda está em desenvolvimento e por esse fato esse 'apoio humano' ainda é imprescindível para corrigir os erros mais rapidamente.
Sendo assim temos 2 equipes de apoio formadas por humanos, pessoas.
A primeira é que sempre existe uma 'equipe de apoio técnico' para a IA que é composta por pessoas. Essa equipe é a que 'ajusta' a IA para obter o melhor resultado. São técnicos, engenheiros, analistas, pessoas especializadas na correção de problemas.
A segunda equipe é a 'equipe de apoio' que responde as perguntas que a IA não consegue. Elas respondem a questão e passam o problema para a 'equipe técnica' resolver.
Suponha que ao aplicar todos os recursos a IA não consiga achar uma resposta que 'encaixe' na solicitação feita.
Seria o caso quando você envia para a IA uma foto e pergunta para ela de quem é a foto.
Pode ser que a IA reconheça a foto como, por exemplo, é a torre Eiffel.
Quando não reconhece a IA grava a falha num 'histórico de falhas' para a equipe técnica de apoio corrija o erro futuramente.
Note que a equipe técnica fará de tudo para corrigir o erro e a última coisa que fará é ignorar o erro porque, com certeza,
o erro voltará a ocorrer. A equipe técnica, sempre, tem que gerar uma solução, veremos logo abaixo como.
Por default a 'equipe de apoio' responde a solicitação e, neste caso, notamos que a resposta demora um pouco mais que o comum da IA.
A primeira solução e a que normalmente fazem é ajustar a IA para que reconheça a foto. Isso normalmente é algo bem complexo podendo envolver novos algorítimos, novas buscar, um leque impressionante de recursos para resolver a questão. Lembre-se que por traz da IA tem um 'pool' de empresas interessadas em que ela funcione perfeitamente.
A segunda solução eles podem criar uma resposta de imagem não reconhecida. Neste caso eles argumentam que o recurso exigido está acima da geração de IA atual e ficará para a próxima geração de IA resolver o problema.
O Agente. O agente é a IA que está respondendo a sua solicitação. Por exemplo, o chatbot.
O Ambiente ( Environment) : Chamamos de ambiente o leque completo das opções possíveis da IA para serem o melhor resultado. O objetivo é entregar apenas uma resposta, a mais concisa, completa e acertiva.
O canal / canais de acesso. Para acessar a IA você precisa de um meio de acesso a ela. Pode ser um browser e um site da internet mas pode ser um monte de fios e cabos dos sensores de um automóvel sendo guiado pela IA.
A primeira coisa que você faz é entrar em contato com a IA. Pode ser uma aplicação, um site, etc. Para facilitar vamos chamar essa IA de 'AGENTE'.
Etapa1 - Envio da solicitação.
Uma vez em contato com o AGENTE você faz uma solicitação que é parecida com um request de uma página web. Você envia um texto, fala com
ele ou coisa parecida e com isto a iA recebe sua solicitação.
Etapa2 - Análise
Em IA chamamos essa análise inicial da solicitação de 'SENSORS' porque não é uma simples classificação ou separação
da solicitação mas sim uma classificação do que é mais importante e isto dá um peso a cada elemento da pesquisa.
Os sensors são uma das partes mais complexas e mais bem feitas na IA. Sabe aquele ditado que diz quem entendeu a pergunta já
sabe metade da resposta. Em IA isso é bem mais da metade.
Sendo assim é aplicado um critério que classifica / divide a solicitação em itens do tipo qual é o assunto principal, filtros, particularidades para que a resposta seja a mais acertiva possível.
Quando a pesquisa é processada pela IA ela envia a resposta para os atuadores ( Actuators ) que envia a resposta para o solicitante. Note que se a IA é um ChatGPT ele vai enviar uma mensagem mas se a IA estiver sendo aplicada a um robo ou automóvel o 'atuador' fará a direção virar, acelerar ou frear o veículo e se a IA for ligada a medicina ela pode no atuador reduzir ou aumentar a dose de um analgésico para um paciente que está sentido dores.
A parte que conecta a solicitação a resposta é chamada de 'ciclo de percepção' ( Perception Action Cycle ) e é nesta etapa que a IA define qual é a melhor resposta para a pergunta. Este é o centro da IA.
Para prosseguirmos precisamos definir claramente alguns termos empregados para definir o funcionamento da IA que nem sempre são claros ou seu entendimento é particular no caso da IA.
Em inglês Fully or Partially observable.
'Totalmente Observável' o 'Fully Observable' ocorre
quando o que seu 'agente sabe' em qualquer momento do tempo é completamente
suficiente para realizar a melhor decisão
.
Como exemplo você coloca todas as cartas de um baralho na mesa de maneira que possa vê-las e uma visão momentânea das cartas é o
suficiente para escolher a carta desejada ( melhor escolha - optimal choice ).
'Parcialmente Observável' ou 'Partially observable' ocorre quando não é possível observar todas as possibilidades e com isto
chegar diretamente ao melhor resultado diretamente pela simples observação pontual. Você precisará de mais tempo, mais elementos
para fazer a melhor escolha.
É o caso de um jogo de poker...as cartas que você tem em sua mão são 'Totalmente Observável' ou 'Fully Observable', mas nem
sempre são as que ganharão o jogo ( melhor resultado ). Sendo assim as que estão no baralho ainda são um mistério e podem
ser a chave para o melhor resultado. Por esse motivo a 'memorização' dos resultados irá ajudar a chegar mais rapidamente no
melhor resultado num jogo de poker onde as cartas jogadas não são repostas.
Peguei pesado né...Em inglês, deterministic or stochastic
Um modelo determinístico assume um conjunto de condições que levam a um desfecho exato sem variação.
Um modelo estocástico incorpora aleatoriedade e reconhece a probabilidade de ocorrência de diferentes desfechos.
Por exemplo num jogo de xadrez o movimento das peças são determinísticos porque as peças se movimentam de acordo com as regras do xadrez.
Por outro lado jogar um dado é completamente estocástico porque nunca sabemos qual será o resultado com antecedência.
Em inglês, discrete or continuous.
Discreto é quando o ambiente apresenta um número finito de opções para chegar ao melhor resultado.
Neste caso um bom exemplo é o jogo de xadrez onde temos um número finito de possibilidades para vencermos o jogo ( melhor resultado ).
Um ambiente contínuo ocorre quando o número de opções possíveis para ser a melhor escolha é infinito.
Num jogo de dardos existe uma condição atual e infinitas possibilidades de ganhar(melhor opção), basta fazer seu dardo mais perto da mosca.
Em inglês Benign or Adversarial.
Um ambiente benigno é quando nenhuma opção é contrária a escolha da melhor opção. Nenhuma das escolhas impõe que outra escolha, no mesmo leque de opções, não seja possível. Uma opção não exclui a outra.
Já no xadrez o ambiente é adversário porque ambos adversários tem como objetivo eliminar o outro. Neste caso uma opção exclui a outra do tipo ou você nasceu na Bahia ou em Pernambuco...não dá pra ter nascido nos dois estados.
Em inglês : Problem Solving.
É o processo que a IA liga a etapa de entrada da solicitação (sensors) com a etapa de saída da solicitação(actuators).
É a elaboração da resposta a ser enviada.
Nesta etapa os processos são refinados para que mais rapidamente, com menos esforço e gastando menos recursos, cheguemos ao
melhor resultado.
Em inglês, States.
Cada vez que uma solicitação é respondida temos um estado.
Um estado é a situação atual da IA em relação a questão solicitada.
Caso o usuário faça uma nova solicitação será gerado um novo ciclo levando em conta o estado ( state ) atual para elaborar
a nova resposta e ao responder é criado um novo state e este ciclo pode-se repetir indefinidamente. Note que a cada
state é contado um ciclo de iteração do processo.
Importante : Podemos pedir para a IA ignorar o passo anterior ( o state anterior ) e fazer um novo refinamento.
Para isso basta pedir para ela desconsiderar a resposta anterior.
Em inglês Cycles.
Ciclos são os números de interações com a IA. Por exemplo, você enviou uma solicitação e a resposta não foi suficiente.
Você envia outra solicitação fazendo um 'refinamento' ou 'acrescentando' um detalhe e ai a resposta sai correta.
A primeira iteração é o Ciclo 1 e a segunda é o Ciclo2 e assim por diante.
Em IA é muito comum não sabermos exatamente qual é a melhor resposta, mas temos uma das respostas que é bem melhor
que as demais. Sendo assim enviamos essa resposta e o usuário acaba reprovando ela. Portanto é necessária mais de uma
iteralção (ciclo) para chegarmos a resposta correta.
Em inglês complexity.
Como tudo tem coisas fáceis de responder e coisas difíceis de responder.
Uma coisa fácil de responder seria, por exemplo, olhando para uma placa da estrada escolher o caminho a ser seguido.
Basta olhar para a placa que a indicação está lá.
Um caso um pouco mais complexo seria, usando a mesma situação, ao olhar para a placa na estrada você não consegue
ver as indicações porque naquela distância a neblina interfere na leitura da placa.
Sendo assim aguardamos uma nova 'iteração' quando estivermos mais perto da placa e a sua leitura for possível.
Outro nível mais complexo seria quando ao olharmos a placa víssemos um mapa de possibilidades, um monte de ruas ou
estradas e não é o simples fato de escolher a direção mas sim o melhor caminho, por quais cidades devemos passar
para chegarmos mais rápido ao nosso destino.
Note que também podemos olhar o 'mapa' e não acharmos a cidade que queremos chegar. Neste caso a melhor resposta não
pode ser definida mas se houverem 'parâmetros' suficientes, por exemplo, informando que a cidade A é vizinha a cidade
que desejamos chegar a IA pode escolher o caminho para a Cidade A e, ao chegar na cidade A, em um novo ciclo,
fazer uma nova pesquisa e achar a resposta.
Note que se você chegar num google maps e colocar os pontos de partida e chegada o site é capaz de indicar a rota mais rápida, mais curta para chegar ao destino. Aplicações como o Waze podem agregar informações de congestionamentos, bloqueios, acidentes e indicar uma rota alternativa para que você chegue ao destino mais rápido. Sites como o Uber usam essas informações para precificar o custo de uma vigem para o usuário.
Como toda IA está dentro de computadores podemos ter ocasiões onde a melhor escolha não pode ser determinada, digamos, a melhor opção é simplesmente desconhecida. Isto se deve a alguns fatores.
1-Limites dos sensores (Sensor Limits). Os sensores não conseguiram preparar corretamente a solicitação feita para que a IA fizesse a melhor escolha.
2-Adversários (adversaries). Fazem com que seja difícil você chegar ao melhor resultado.
3-Ambiente estocásticos: Quando cada opção retorna um resultado plausível e não é possível destacar a melhor, todas parecem igualmente boas.
Toda solicitação feita pela IA segue algumas regras dependendo de sua utilização. Basicamente são as seguintes:
1-Estado Inicial ou Initial State : É como estamos no exato momento.
2-Ações ou Actions : São os passos que podemos fazer para atingir nosso resultado desejado.
Note que as ações podem mudar a cada estado ou ciclo uma vez que na próxima iteração o sistema tenha mais informações
que aproximam da melhor resposta. É um processo contínuo de refinamento.
Note que para a ação ser determinada num problema de roteamento uma função de custo seria interessante ( em inglês Path Cost ). Sendo assim ao termos 2 opções a opção A e a opção B podemos calcular as distâncias que iremos percorrer e escolher a de menor distância. Note que esse 'parâmetro' de distância entre as cidades é uma informação importante para que o melhor caminho seja escolhido, mas nem sempre estará disponível. Neste caso estaremos respondendo com um certo grau de 'incerteza' do resultado que pode ser satisfatório ou simplesmente inaceitável na ocasião desejada.
3-Resultados ou Results : Uma vez que estavamos no 'estado inicial' e realizamos uma 'ação' nós temos um resultado. Pode ser o resultado final esperado ou não, mas no pior caso define um novo 'estado' e baseado nesse novo estado ( que substitituí o 'estado inicial' ) podemos definir outra ação que nos aproximará mais ainda do resultado esperado.
4-Teste de objetivo alcançado ou goal test : O objetivo deste item é informar a IA se chegou ou não aonde queria retornando um valor lógico, verdadeiro indicando que chegou ou falso indicando que ainda falta.
Note que os passos para a solução do problema podem variar, um 'estado' leva a outro e assim por diante. A chave é que sejam o menor número de 'estados' possíveis para que alcacemos a resposta mais rapidamente.